sread(positions) input-seq
replace positions with their index in the input sequence
we try to preserve the 'structure' of 'positions'
index values start from 1, not 0
negative values are also valid, so -1 is last element, -2 is second last element, etc
if out of range, or not a number, return |> for that slot